ТЗ: АРМ разработчика && тестировщика промптов 1) Контекст и ограничение - Пользователь: пишет/правит промпт, сохраняет, запускает тесты, смотрит отчёты. 2) Что нужно сделать (обязательно) 2.1. Веб-интерфейс АРМ - Режимы: find-error (MVP) и solve-problem (каркас + базовый функционал по аналогии). - Промпты: создать/редактировать, версии (история + “активная версия”). - Кейсы: создать/редактировать (вход + ожидаемые критерии). - Тесты: выбрать режим, версию промпта, кейсы и модели ? запустить прогон ? видеть статус/прогресс. - Результаты: таблица + сравнение ответов разных моделей по одному кейсу. - Экспорт: JSON и CSV. 2.2. Реестр моделей (конфиги подключений) - CRUD: name, provider_type (минимум OpenAI-compatible), base_url, model_name, auth (api_key/header), default params, limits (timeout, max_concurrency). - “Проверить подключение” (тестовый запрос). Набор моделей для тестирования: - Deepseek-R1-Distill-Llama-70B - Deepseek-R1 - Meta-Llama-3.1-70B-Instruct - Mixtral-8x22b - Gpt_oss_120b UX: “прогнать на всех 5” одним действием (пресет/чекбокс). 2.3. Асинхронный прогонщик (runner) внутри АРМ - Python + asyncio (httpx или aiohttp). - Умеет: (а) один кейс ? все модели; (б) набор кейсов ? все модели. - Требования: лимиты параллелизма (глобально и/или на модель), таймаут, ретраи с backoff на 429/5xx/сети. - Выход: результаты (кейс*модель) + сводка + отчёт JSON/CSV. - Запуск из UI; желательно также CLI. 3) Хранение данных (минимум) - Модели, промпты и версии, кейсы, прогоны, результаты, ручные оценки (score 1–5 + pass/fail + комментарий). 4) Интеграция (описать и обеспечить перенос) - Встраивание в Django как app (urls/views/templates/static, auth через Django при интеграции). - Альтернатива: отдельный сервис (UI + API), чтобы потом подключили к сайту. 5) Критерии приёмки - Можно создать версию промпта для find-error и минимум 5 кейсов. - Можно завести 5 моделей из списка и запустить прогон “на всех 5”. - Прогон асинхронный, результаты сохраняются и отображаются. - Отчёт экспортируется (JSON + CSV).